package com.example.spring.dao.sys;

import com.example.spring.common.MyBatisDao;
import com.example.spring.dao.CrudDao;
import com.example.spring.entity.Position;
import com.example.spring.entity.PositionOrg;
import com.example.spring.entity.PositionUser;
import com.example.spring.entity.User;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.bouncycastle.asn1.x500.style.RFC4519Style.cn;

/**
 * 角色DAO接口
 *
 * @author ThinkGem
 * @version 2013-12-05
 */
@MyBatisDao
public interface PositionDao extends CrudDao<Position> {

    //获取岗位机构列表信息
    public Position getPositionOrgList(String id);

    //通过岗位名称查询岗位信息
    public Position getByName(Position position);

    //通过岗位编码查询岗位信息
    public Position getByCode(Position position);

    //删除岗位机构信息
    public int deletePositionOrg(Position position);

    //新增岗位机构信息
    public int insertPositionOrg(Position position);

    //通过机构Id查询岗位信息
    public List<Position> getPositionByOrgId(String orgId);

    //根据机构ID和岗位ID查询人员信息
    List<User> selectUsersByOrgIdAndPositionId(PositionOrg positionOrg);

    //根据机构Id查询对应的岗位信息
    List<Position> selectPositionByOrgId(PositionOrg positionOrg);

    //新增用户岗位信息
    public int insertPositionUser(User user);

    //删除用户岗位信息
    public int deletePositionUser(PositionUser positionUser);

    //查询用户下配置的岗位信息
    public List<Position> selectPositionByuserNO(User user);

    //获取当前岗位表中最大岗位编码值
    public int getMaxPositionCode();

    //定制查询岗位列表
    public List<HashMap> findPositionOrgList(Map map);

    //批量删除岗位信息
    public int deletePositionOrgs(Position position);
    //批量删除岗位下归属机构信息
    public int deletePositions(Position position);

}
